EN6106 – Emerging Topics in Information Technology

Comprehensive Study Notes (Lecture + References + Past Papers)

1. Microservices Architecture

1.1 Definition and Core Principles

Definition: Microservices architecture decomposes a monolithic application into independent, loosely coupled services, each with its own process, deployment, and scaling capabilities.

Core Principles: Single Responsibility, Decentralized Governance, Technology Diversity, Resilience, Scalability.

1.2 Monolithic vs. Microservices

Aspect Monolithic Microservices
Deployment Single unit Independent services
Scalability Difficult Easy
Fault Isolation Poor High
Development Slower Faster

1.3 Design Principles

1.4 Communication Protocols

1.5 Data Management

Each microservice owns its database; data is accessed only via service APIs.

1.6 Security

OAuth2 and OpenID Connect for authentication and authorization.

1.7 Deployment

Docker: Containerization. Kubernetes: Orchestration.

Example: Netflix’s migration to microservices for scalability and reliability.

1.8 Challenges

1.9 References

Ref 1: Spring Microservices

2. Monolithic Architecture

2.1 Key Features

2.2 When to Use

2.3 Limitations

3. Data Science with Python

3.1 Key Libraries

3.2 Data Science Process

  1. Data Collection: Gather data from various sources (databases, APIs, files).
  2. Data Cleaning: Handle missing values, remove duplicates, correct errors.
  3. Data Exploration: Understand data through summary statistics and visualizations.
  4. Data Modeling: Build predictive models using machine learning algorithms.
  5. Data Interpretation: Analyze model outputs and insights.
  6. Data Visualization: Present insights using charts, graphs, and dashboards.
  7. Communication: Share findings with stakeholders.

3.3 Data Pipelines

ETL Process: Extract, Transform, Load.

Tools: Apache Hadoop, Spark, Informatica PowerCenter, Apache Kafka.

3.4 Requirements of Data Pipelines

Example: Using Pandas for data cleaning and Matplotlib for visualization.

3.5 References

Ref 2: W3Schools Data Science Tutorial

4. Artificial Intelligence (AI)

4.1 Types of AI

4.2 AI Paradigms

4.3 Subfields

4.4 Applications

Software-based:

Hardware-based:

Example: Tesla Autopilot for autonomous vehicles.

4.5 References

Ref 3: NetLogo Multi-Agent Modeling

5. Social Network Analysis (SNA)

5.1 Graph Theory Basics

5.2 Data Management

Tools: Gephi, UCINET, Pajek.

Best practices: Standardization, cleaning, documentation.

5.3 Applications

5.4 References

Ref 4: NetworkX Reference

6. Digital Forensics

6.1 Key Concepts

Branches:

Digital Evidence Types:

6.2 Forensic Process

  1. Identification: Gather information and identify potential evidence sources.
  2. Collection: Secure and preserve evidence (forensic imaging).
  3. Examination: Analyze data for relevance.
  4. Analysis: Interpret evidence and draw conclusions.
  5. Presentation: Report findings for legal proceedings.

6.3 Chain of Custody

Purpose: Document handling and movement of evidence.

Key Points:

6.4 Roles in Law Enforcement

Example: Using Autopsy for forensic analysis.

6.5 References

Ref 5: Python Digital Forensics Tutorial

7. Data Visualization

7.1 Benefits

7.2 Tools

Matplotlib, Seaborn, Plotly, Tableau.

Example: Using Seaborn for statistical data visualization.

8. Key Exam Insights

Commonly Tested Topics:

Topic Key Points
Microservices Decentralized data management, independent deployment, communication protocols.
Monolithic Architecture Single codebase, simplicity, difficulty in scaling.
Data Science with Python Pandas, NumPy, ETL process, data visualization.
AI Weak vs. Strong AI, AI paradigms, subfields (ML, NLP, CV).
SNA Graph theory, centrality measures, data management tools.
Digital Forensics Evidence types, forensic process, chain of custody.
Data Visualization Benefits, tools, and applications.

Exam Tips

References

  1. Ref 1: Spring Microservices
  2. Ref 2: W3Schools Data Science Tutorial
  3. Ref 3: NetLogo Multi-Agent Modeling
  4. Ref 4: NetworkX Reference
  5. Ref 5: Python Digital Forensics Tutorial
  6. Ref 6: Web-based AR App Development Tutorial